#ifndef CONFIGURATIONVIEW_H
#define CONFIGURATIONVIEW_H

#include "abstractview.h"
#include "informationline.h"
#include <QFrame>
#include <QVector>
#include <QPushButton>
#include <QFormLayout>
#include <QTableWidget>

namespace views {
    class ConfigurationView: public AbstractView
    {
        Q_OBJECT

    public:
        ConfigurationView();
        virtual ~ConfigurationView();
        virtual void    initUI();
        virtual void    setupUI();
        virtual void    setViewName(const QString& name);
        void            adjustInformationLineIds();

    signals:
        void startVision();
        void stopVision();

    public slots:
        void saveConfiguration();
        void emitStartVision();
        void emitStopVision();
        void addInfoLine();
        void deleteInfoLine(int id);

    private:
        QFrame                      *_mainFBox;
        QFrame                      *_panelInfo;
        QPushButton                 *_btnStartVision;
        QPushButton                 *_btnStopVision;
        QPushButton                 *_btnAddInfo;
        QPushButton                 *_btnSaveConfig;
        QTableWidget                *_tableInfo;
        QVector<InformationLine*>   *_infoLines;
    };
}

#endif // CONFIGURATIONVIEW_H
